package com.example.dto;

import com.example.model.RiskIndicator;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 风控指标查询条件
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RiskIndicatorQuery {

    /**
     * 用户ID列表
     */
    private List<String> userIds;
    
    /**
     * 指标类型列表
     */
    private List<String> types;
    
    /**
     * 指标名称列表
     */
    private List<String> names;
    
    /**
     * 风险等级列表
     */
    private List<RiskIndicator.RiskLevel> riskLevels;
    
    /**
     * 指标值范围-最小值
     */
    private Double valueMin;
    
    /**
     * 指标值范围-最大值
     */
    private Double valueMax;
    
    /**
     * 计算时间范围-开始时间
     */
    private LocalDateTime calculatedAtStart;
    
    /**
     * 计算时间范围-结束时间
     */
    private LocalDateTime calculatedAtEnd;
    
    /**
     * 指标来源列表
     */
    private List<String> sources;
    
    /**
     * 分页-页码（从0开始）
     */
    private Integer page;
    
    /**
     * 分页-每页大小
     */
    private Integer size;
    
    /**
     * 排序字段
     */
    private String sortField;
    
    /**
     * 排序方向（asc/desc）
     */
    private String sortDirection;
}